{% extends 'layout.html' %}

{% block content %}
	<div class="container">
		<div style="margin-bottom: 20px">
			<input id="btnAdd" type="button" class="btn btn-success" value="新建订单">
		</div>

		<div class="panel panel-default">
			<!-- Default panel contents -->
			<div class="panel-heading">
				<span class="glyphicon glyphicon-th-list" aria-hidden="true"></span>
				订单列表
			</div>

			<!-- Table -->
			<table class="table table-bordered">
				<thead>
				<tr>
					<th>ID</th>
					<th>订单号</th>
					<th>名称</th>
					<th>价格</th>
					<th>状态</th>
					<th>管理员</th>
					<th>操作</th>
				</tr>
				</thead>
				<tbody>
				{% for obj in queryset %}
					<tr uid="{{ obj.id }}">
						<th>{{ obj.id }}</th>
						<td>{{ obj.oid }}</td>
						<td>{{ obj.title }}</td>
						<td>{{ obj.price }}</td>
						{% if obj.status == 2 %}
							<td style="color: green;">{{ obj.get_status_display }}</td>
						{% else %}
							<td style="color: red;">{{ obj.get_status_display }}</td>
						{% endif %}

						<td>{{ obj.admin.user_name }}</td>

						<td>
							<input uid="{{ obj.id }}" type="button" class="btn btn-primary btn-xs btn-edit"
								   value="编辑">
							<input uid="{{ obj.id }}" type="button" class="btn btn-danger btn-xs btn-delete"
								   value="删除">
						</td>
					</tr>
				{% endfor %}
				</tbody>
			</table>
		</div>

		<ul class="pagination">
			{{ page_str }}
		</ul>

		{# 新建/编辑 订单(对话框) #}
		<div class="modal fade" id="myModel" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
			<div class="modal-dialog" role="document">
				<div class="modal-content">
					<div class="modal-header">
						<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
								aria-hidden="true">&times;</span></button>
						<h4 class="modal-title" id="myModalLabel">新建</h4>
					</div>
					<div class="modal-body">
						<form id="formAdd">
							<div class="clearfix">
								{% for field in form %}
									<div class="col-xs-6">
										<div class="form-group" style="position: relative;margin-bottom: 20px">
											<label>{{ field.label }}</label>
											{{ field }}
											<span class="error-msg" style="color: red; position: absolute"></span>
										</div>
									</div>
								{% endfor %}
							</div>
						</form>
					</div>
					<div class="modal-footer">
						<button type="button" class="btn btn-default" data-dismiss="modal">取 消</button>
						<button id="btnSave" type="button" class="btn btn-primary">保 存</button>
					</div>
				</div>
			</div>
		</div>

		{# 删除订单(对话框) #}
		<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
			 style="margin: 200px 600px">
			<div class="alert alert-danger alert-dismissible fade in" role="alert">
				<h4>是否确定删除?</h4>
				<p style="margin: 10px 0;">删除后, 所有关联的数据都会被清除.</p>
				<p style="text-align: right">
					<button id="btnConfirmDelete" type="button" class="btn btn-danger">确 定</button>
					<button type="button" class="btn btn-default" data-dismiss="modal">取 消</button>
				</p>
			</div>
		</div>
	</div>
{% endblock %}

{% block js %}
	<script type="text/javascript">
        var DELETE_ID;
        var EDIT_ID;

        $(function () {
            bindAddEvent();
            bindBtnSaveEvent();
            bindBtnDeleteEvent();
            bindBtnConfirmDeleteEvent();
            bindBtnEditEvent();

        })

        function bindAddEvent() {
            $("#btnAdd").click(function () {
                // 将正在编辑的ID设置为空
                EDIT_ID = undefined;
                // 清空对话框
                $("#formAdd")[0].reset();
                // 设置对话框标题
                $("#myModalLabel").text('新建');
                // 点击button, 弹出对话框
                $("#myModel").modal('show');
            });
        }

        function bindBtnSaveEvent() {
            $("#btnSave").click(function () {
                // 清除所有的错误信息
                $(".error-msg").empty();

                if (EDIT_ID) {
                    // 编辑
                    doEdit();
                } else {
                    // 添加
                    doAdd();
                }
            })
        }

        function doEdit() {
            // 向后台发送请求(添加)
            $.ajax({
                url: '/order/edit/' + '?uid=' + EDIT_ID,
                type: 'post',
                data: $("#formAdd").serialize(),
                dataType: 'JSON',
                success: function (res) {
                    if (res.status) {
                        // alert('编辑成功!');
                        // 清空表单 $("#formAdd")  是一个jquery对象 -> $("#formAdd")[0] DOM对象
                        $("#formAdd")[0].reset();
                        // 关闭对话框
                        $("#myModel").modal('hide');
                        // 刷新页面
                        location.reload();

                    } else {
                        if (res.tips) {
                            alert(res.tips);
                        } else {
                            // 把错误信息显示在对话框中
                            $.each(res.error, function (name, errorList) {
                                $("#id_" + name).next().text(errorList[0]);
                            })
                        }

                    }
                }
            })

        }

        function doAdd() {
            // 向后台发送请求(添加)
            $.ajax({
                url: '/order/add/',
                type: 'post',
                data: $("#formAdd").serialize(),
                dataType: 'JSON',
                success: function (res) {
                    if (res.status) {
                        // alert('创建成功!');
                        // 清空表单 $("#formAdd")  是一个jquery对象 -> $("#formAdd")[0] DOM对象
                        $("#formAdd")[0].reset();
                        // 关闭对话框
                        $("#myModel").modal('hide');
                        // 刷新页面
                        location.reload();

                    } else {
                        // 把错误信息显示在对话框中
                        $.each(res.error, function (name, errorList) {
                            $("#id_" + name).next().text(errorList[0]);
                        })
                    }
                }
            })
        }

        function bindBtnDeleteEvent() {
            $(".btn-delete").click(function () {
                // alert('点击了删除');
                // 显示删除对话框
                $("#deleteModal").modal('show');
                // 获取当前行的id, 并赋值给全局变量DELETE_ID
                DELETE_ID = $(this).attr('uid');

            });
        }

        function bindBtnConfirmDeleteEvent() {
            $("#btnConfirmDelete").click(function () {
                // 点击确认删除按钮, 将DELETE_ID发送到后天
                $.ajax({
                    url: '/order/delete/',
                    type: "GET",
                    data: {
                        uid: DELETE_ID,
                    },
                    dataType: "JSON",
                    success: function (res) {
                        if (res.status) {
                            // alert('删除成功');
                            // 隐藏删除框
                            $("#deleteModal").modal('hide');
                            // js删除该行数据
                            // $("tr[uid='" + DELETE_ID + "']").remove();
                            // 置空全局变量DELETE_ID
                            DELETE_ID = 0;
                            // 页面刷新
                            location.reload();
                        } else {
                            // 删除失败
                            alert(res.error);
                        }

                    }
                })
            });
        }

        function bindBtnEditEvent() {
            $(".btn-edit").click(function () {
                // 清空对话框
                $("#formAdd")[0].reset();

                var uid = $(this).attr('uid');
                EDIT_ID = uid;
                // alert('点击了编辑');

                // 发生ajax去后台获取当前行的相关数据
                $.ajax({
                    url: '/order/detail/',
                    type: 'get',
                    data: {
                        uid: uid
                    },
                    dataType: "JSON",
                    success: function (res) {
                        if (res.status) {
                            console.log(res.data);
                            // 将数据赋值到对话框中的标签
                            $.each(res.data, function (name, value) {
                                $("#id_" + name).val(value);
                            })

                            $("#myModalLabel").text('编辑');
                            // 点击编辑, 显示对话框
                            $('#myModel').modal('show');

                        } else {
                            alert(res.error);
                        }
                    }
                })
                // 在对话框中默认看到
            })
        }
	</script>
{% endblock %}